﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace devtm.AutoMapper
{


    public partial class TypeElement : INotifyPropertyChanged
    {


        internal sealed partial class AssemblyQualifiedNamePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, string oldValue, string newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("AssemblyQualifiedName");
            }


        }


        internal sealed partial class FullNamePropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, string oldValue, string newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("FullName");
            }
        }


        internal sealed partial class NamespacePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, string oldValue, string newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("Namespace");
            }

        }



        internal sealed partial class IsClassPropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsClass");
            }


        }


        internal sealed partial class IsInterfacePropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsInterface");
            }
        }



        internal sealed partial class IsAbstractPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsAbstract");
            }
        }


        internal sealed partial class IsAnsiClassPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsAnsiClass");
            }
        }


        internal sealed partial class IsArrayPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsArray");
            }
        }


        internal sealed partial class IsEnumPropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsEnum");
            }

        }


        internal sealed partial class IsNestedPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsNested");
            }
        }


        internal sealed partial class IsPublicPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsPublic");
            }
        }


        internal sealed partial class IsSealedPropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsSealed");
            }
        }


        internal sealed partial class IsSerializablePropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsSerializable");
            }
        }


        internal sealed partial class ContainsEmptyConstructorPropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("ContainsEmptyConstructor");
            }

        }


        internal sealed partial class NamePropertyHandler
        {
            protected override void OnValueChanged(TypeElement element, string oldValue, string newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("Name");
            }
        }


        internal sealed partial class IsEnumerablePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsEnumerable");
            }

        }


        internal sealed partial class IsValueTypePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsValueType");
            }

        }


        internal sealed partial class IsNullablePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, bool oldValue, bool newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("IsNullable");
            }

        }


        internal sealed partial class ItemTypePropertyHandler
        {

            protected override void OnValueChanged(TypeElement element, string oldValue, string newValue)
            {
                base.OnValueChanged(element, oldValue, newValue);
                element.PropertyChange("ItemType");
            }

        }

        protected void PropertyChange(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

}
